<template>
    <view class="login-container">
        login
        <uni-icons type="contact-filled" size="100" color="#AFAFAF"></uni-icons>
        <button type="primary" class="btn-login" open-type="getUserInfo" @getuserinfo="getUserInfo">登录</button>
        <text class="tips-text">请先登录</text>

    </view>
</template>

<script>
    import {mapMutations} from 'vuex'
    export default {
        name: "my-login",
        data() {
            return {

            };
        },
        methods: {
            ...mapMutations('m_user', ['updateUserInfo', 'updateToken']),
            // 获取用户的基本信息
            getUserInfo(e) {
                if (e.detail.errMsg === 'getUserInfo: fail auth deny') {
                    return uni.$showMsg('取消登录！')
                }
                console.log(e.detail)
                this.updateUserInfo(e.detail.userInfo)
                this.getToken(e.detail)
            }, 
            
            async getToken(info) {
                const[err,res] = await uni.login().catch(err => err)
                console.log(err)
                console.log(res)
                if (err || res.errMsg !== 'login:ok') {
                    return uni.$showError('登录失败')
                }
                
                const query = {
                    code: res.code,
                    encryptedData: info.encryptedData,
                    iv: info.iv,
                    rawData: info.rawData,
                    signature: info.signature
                }
                
                console.log(query)
                const {data: loginResult} = await uni.$http.post('/api/public/v1/users/wxlogin', query)
                console.log(loginResult)
                // if (loginResult.meta.status != 200) {
                //     return uni.$showMsg('登录失败2')
                // }
                // console.log(loginResult)
                // this.updateToken(loginResult.msg.token)
                this.updateToken('loginResult.msg.token')
                uni.$showMsg('登录成功')
            } 
            
        }
    }
</script>

<style lang="scss">
    .login-container {
        height: 750rpx;
        background-color: #F8F8F8;
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        
        .btn-login {
            width: 90%;
            border-radius: 100rpx;
            margin: 15rpx 0;
            background-color: #C00000;
        }

        .tips-text {
            font-size: 30rpx;
            color: gray;
        }
    }
</style>